<?php
use PHPMailer\PHPMailer\Exception;
use PHPMailer\PHPMailer\PHPMailer;

class Email
{
    //邮件工具类
    private static $obj;

    private function __construct()  //私有的构造方法
    {
    }

    public static function EmailObj()  //获取邮箱
    {
        if(!Email::$obj){
            Email::$obj = new Email();
        }
        return Email::$obj;
    }

    public function sendEmail($email,$code) //发送邮件  参数1收件人 邮箱  参数2 邮箱验证码
    {
        $mail = new PHPMailer(true);
        try {
            //服务器配置
            $mail->CharSet = "UTF-8"; //设定邮件编码
            $mail->SMTPDebug = 0; // 调试模式输出
            $mail->isSMTP(); // 使用SMTP
            $mail->Host = 'smtp.qq.com'; // SMTP服务器
            $mail->SMTPAuth = true; // 允许 SMTP 认证
            $mail->Username = '305991138@qq.com'; // SMTP 用户名 即邮箱的用户名
            $mail->Password = 'pypleyphtzppbhbg'; // SMTP 密码 部分邮箱是授权码(例 如163邮箱)
            $mail->SMTPSecure = 'ssl'; // 允许 TLS 或者ssl协议
            $mail->Port = 465; // 服务器端口 25 或者465 具体要看邮箱服务器支持
            $mail->setFrom('305991138@qq.com', 'Mailer'); //发件人
            $mail->addAddress("$email", '123456'); // 收件人
            //$mail->addAddress('ellen@example.com'); // 可添加多个收件人
            $mail->addReplyTo('305991138@qq.com', 'info'); //回复的时候回复给哪个邮 箱 建议和发件人一致
            //Content
            $mail->isHTML(true); // 是否以HTML文档格式发送 发送后客户端可直接显示对应 HTML内容
            $mail->Subject = '邮箱验证码';
//            $mail->Body = '<h1>论坛注册验证码</h1><p>验证码为 &nbsp&nbsp '.$code.' &nbsp&nbsp <br>验证码十分钟内有效</p>' . date('Y-m-d H:i:s');
            $mail->Body =  '<body style="background:#f3f3f3;border: 1px">'.
'<div style="background: white ;width: 870px;height: 505px;  margin: 100px auto;padding: 40px  44px 0 44px; " >'.
                '<div  style="color: #828ff2;font-size: 58px;font-weight: bold;">个人论坛</div>'.
                '<div style="font-size: 55px;margin: 90px 0 20px 0">您的验证码为：'.$code.'</div>'.
                '<br>'.
                '<div style="color:#909090;font-size: 35px">验证码10分钟内有效</div>'.
                '</div>'.
                '</body>';

            $mail->AltBody = "验证码为$code";
            $mail->send();
            return ['code'=>200,'msg'=>'验证码发送成功'];
        } catch (Exception $e)
        {
            return ['code'=>400,'msg'=>$mail->ErrorInfo];
        }
    }



    private function __clone()  //私有的克隆方法
    {
    }
}